TOP

Join SQL

YouLibreCalc for Excel logo

SQL JOIN

L'espressione JOIN viene utilizzata per unire righe di due o più tabelle in base alla colonna correlata tra di loro.


Diamo un'occhiata ad un esempio dalla tabella "Orders" ("Ordini"):

ProductIDOrderIDCustomerIDEmployeeIDOrderDateShipperID
1102489051996-07-043
2102498161996-07-051
3102503441996-07-082

Quindi guarda l'esempio dalla tabella "Customers" ("Clienti"):

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico

Tieni presente che la colonna "CustomerID" nella tabella "Orders" si riferisce a "CustomerID" nella tabella "Customers". La relazione tra le due tabelle sopra è la colonna "CustomerID".

Possiamo quindi creare la seguente istruzione SQL (contenente INNER JOIN) che seleziona i record che hanno valori corrispondenti in entrambe le tabelle:

Run SQLSELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID

e questo produrrà qualcosa del genere:

OrderIDCustomerNameOrderDate
10308Ana Trujillo Emparedados y helados1996-09-18
10365Antonio Moreno Taquería1996-11-27
10355Around the Horn1996-11-15
10383Around the Horn1996-12-16
10289B's Beverages1996-08-26

Diversi tipi di SQL JOIN

Ecco i diversi tipi di JOIN in SQL:

  • (INNER) JOIN: restituisce i record che hanno valori corrispondenti in entrambe le tabelle
  • LEFT (OUTER) JOIN: restituisce tutti i record dalla tabella di sinistra e i record corrispondenti dalla tabella di destra
  • RIGHT (OUTER) JOIN: restituisce tutti i record dalla tabella di destra e i record corrispondenti dalla tabella di sinistra
  • FULL (OUTER) JOIN: restituisce tutti i record se c'è una corrispondenza nella tabella sinistra o destra


  • SQL INNER JOIN SQL LEFT JOIN SQL RIGHT JOIN SQL FULL OUTER JOIN